package operators;

public class AssignmentOperators {
    public static void main(String[] args) {
        // 基本赋值
        int a = 10;
        System.out.println("a = " + a);

        // 复合赋值（算术运算+赋值）
        a += 5;  // 等价于 a = a + 5 → 15
        System.out.println("a += 5 → " + a);

        a -= 3;  // 等价于 a = a - 3 → 12
        System.out.println("a -= 3 → " + a);

        a *= 2;  // 等价于 a = a * 2 → 24
        System.out.println("a *= 2 → " + a);

        a /= 4;  // 等价于 a = a / 4 → 6
        System.out.println("a /= 4 → " + a);

        a %= 5;  // 等价于 a = a % 5 → 1
        System.out.println("a %= 5 → " + a);

        // 复合赋值（位运算+赋值）
        int b = 6;  // 二进制 0110
        b &= 3;     // 等价于 b = b & 3 → 0010（2）
        System.out.println("b &= 3 → " + b);

        b |= 4;     // 等价于 b = b | 4 → 0110（6）
        System.out.println("b |= 4 → " + b);

        b <<= 1;    // 等价于 b = b << 1 → 1100（12）
        System.out.println("b <<= 1 → " + b);
    }
}
